<?php
namespace Admin\Model;
use Think\Model;
class GoodsModel extends Model{
	//自动完成一些数据
	//完成文件上传和缩略图的处理
	//自动验证也在这一块去完成
	//自动过滤也在这里,在Laravel中使用的是$fillable=[] 和$guarder=[] 
	//1,自动验证		
	protected $_patchvalidate=true;
	//2,允许提交的字段 
	protected $insertFileds="goods_name,goods_desc,shop_price,market_price,is_on_sale,is_delete,add_time";//定义允许的字段,防止非法表单数据的侵入
	protected $_validate=[
		['goods_name','require','商品名称必须填写',1],
		['cat_id','require','上级分类必须填写',1],
		['shop_price','require','商品价格必须填写',1],
		['market_price','require','市场价格必须填写',1],
		['shop_price','currency','本店售价必须为货币类型',1],
		['market_price','currency','市场售价必须为货币类型',1],
	];
	//3,自动填充--这一块是在钩子函数里面完成的,利用的是_before_insert()的钩子函数
	//第一个参数指的是表单中即将要插入到数据库中的数据->数组
	//第一个参数需要引用的方式进行
	//第二个参数是配置信息,基本上很少用到
	
	/*4,文件上传并制作缩略图
	 * 	上传的图片也是在表单提交之前处理的,所以这里
	 * 
	 */
	protected function _before_insert(&$data,$option){
		$data['add_time']=date('Y-m-d H:i:s');
		//文件上传
		if ($_FILES['logo']['error']===0) {//若为4,则是没有上传图片
			$uploads=new \Think\Upload();
			$uploads->maxSize=1024*1024;
			$uploads->rootPath = "./Public/Uploads";
			$uploads->savePath = "Goods/";
			//上传结果
			$rs=$uploads->upload();
			if (!$rs) {
				$this->error=$uploads->getError();//将上传的错误信息放到模型的error变量中,并退出钩子,
				return FALSE;
			} else {
				return ture;
			}
			
		} else {
			
		}
		
	}
	
	
}
	
	
?>